package SPPBluetooth;

import javax.bluetooth.DeviceClass;
import javax.bluetooth.DiscoveryListener;
import javax.bluetooth.RemoteDevice;
import javax.bluetooth.ServiceRecord;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;

// Implementamos el DiscoveryListener
public class ListenerCliente implements DiscoveryListener {

    // Implementamos los metodos del interfaz DiscoveryListener
    public void deviceDiscovered(RemoteDevice dispositivoRemoto,
            DeviceClass clase) {
        System.out.println("Se ha encontrado un dspositivo Bluetooth");
        SPPClienteMIDlet.dispositivos_encontrados.addElement(dispositivoRemoto);
    }

    public void inquiryCompleted(int completado) {
        System.out.println("Se ha completado la busqueda de dispositivos");
        if (SPPClienteMIDlet.dispositivos_encontrados.size() == 0) {
            Alert alerta = new Alert("Problema",
                    "No se ha encontrado dispositivos", null,
                    AlertType.INFO);
            alerta.setTimeout(3000);
            SPPClienteMIDlet.c.escribirMensaje("Presione descubrir dispositivos");
            SPPClienteMIDlet.display.setCurrent(alerta, SPPClienteMIDlet.c);
        } else {
            SPPClienteMIDlet.c.mostrarDispositivos();
            SPPClienteMIDlet.display.setCurrent(SPPClienteMIDlet.c);
        }
    }

    public void servicesDiscovered(int transID, ServiceRecord[] servRecord) {
        System.out.println("Se ha encontrado un servicio remoto");
        for (int i = 0; i < servRecord.length; i++) {
            ServiceRecord record = servRecord[i];
            SPPClienteMIDlet.servicios_encontrados.addElement(record);
            System.out.println("servicio en " + record);
        }
    }

    public void serviceSearchCompleted(int transID, int respCode) {
        System.out.println("Terminada la busqueda de servicios");
        // Si encontramos un servicio, lo usamos para mandar el
        // mensaje(todos los servicios que hemos buscado son de puerto serie)
        if (SPPClienteMIDlet.servicios_encontrados.size() > 0) {
            SPPClienteMIDlet.SPPc.abrirCanal();
        } else {
            // Si no encontramos ningun servicio de puerto serie
            SPPClienteMIDlet.c.mostrarDispositivos();
            SPPClienteMIDlet.display.setCurrent(SPPClienteMIDlet.c);
        }
    }
}
